CICPHash has the exact same interface as Hash, but is case insensitive
and case preserving. Any value can be used as a key. However, you cannot
have two keys in the same CICPHash that would be the same if when
converted to strings would be equal or differing only in case.
